package ws.cmpe451.group7.ourcity.webservice;

import java.io.IOException;
import java.io.PrintWriter;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import java.util.Map;

import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONException;

import ws.cmpe451.group7.ourcity.webservice.exception.GeneralIllegalArgumentException;
import cmpe451.group7.ourcity.recommendation.RecommendationException;

/**
 * This interface is created to mimic the functional behaviour (create function
 * like classes)
 * 
 */
public interface Callable {

	public void call(HttpServletRequest request, HttpServletResponse response,
			PrintWriter responseWriter, Map<String, String[]> parameters)
			throws InvalidKeyException, NoSuchPaddingException,
			IllegalBlockSizeException, BadPaddingException,
			NoSuchAlgorithmException, InvalidKeySpecException, JSONException,
			RecommendationException, GeneralIllegalArgumentException,
			IllegalStateException, IOException, ServletException;

}
